package com.ruoyi.model;

public final class Login {

        private Login() {}
        public static void registerAllExtensions(
                com.google.protobuf.ExtensionRegistryLite registry) {
        }

        public static void registerAllExtensions(
                com.google.protobuf.ExtensionRegistry registry) {
            registerAllExtensions(
                    (com.google.protobuf.ExtensionRegistryLite) registry);
        }
        public interface EncryptedDataOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.EncryptedData)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>string data = 1;</code>
             * @return The data.
             */
            java.lang.String getData();
            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>string data = 1;</code>
             * @return The bytes for data.
             */
            com.google.protobuf.ByteString
            getDataBytes();

            /**
             * <pre>
             * 随机iv
             * </pre>
             *
             * <code>string iv = 2;</code>
             * @return The iv.
             */
            java.lang.String getIv();
            /**
             * <pre>
             * 随机iv
             * </pre>
             *
             * <code>string iv = 2;</code>
             * @return The bytes for iv.
             */
            com.google.protobuf.ByteString
            getIvBytes();
        }
        /**
         * Protobuf type {@code service.EncryptedData}
         */
        public static final class EncryptedData extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.EncryptedData)
                EncryptedDataOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use EncryptedData.newBuilder() to construct.
            private EncryptedData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private EncryptedData() {
                data_ = "";
                iv_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new EncryptedData();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private EncryptedData(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();

                                data_ = s;
                                break;
                            }
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();

                                iv_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_EncryptedData_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_EncryptedData_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.EncryptedData.class, Login.EncryptedData.Builder.class);
            }

            public static final int DATA_FIELD_NUMBER = 1;
            private volatile java.lang.Object data_;
            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>string data = 1;</code>
             * @return The data.
             */
            @java.lang.Override
            public java.lang.String getData() {
                java.lang.Object ref = data_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    data_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>string data = 1;</code>
             * @return The bytes for data.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getDataBytes() {
                java.lang.Object ref = data_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    data_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            public static final int IV_FIELD_NUMBER = 2;
            private volatile java.lang.Object iv_;
            /**
             * <pre>
             * 随机iv
             * </pre>
             *
             * <code>string iv = 2;</code>
             * @return The iv.
             */
            @java.lang.Override
            public java.lang.String getIv() {
                java.lang.Object ref = iv_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    iv_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 随机iv
             * </pre>
             *
             * <code>string iv = 2;</code>
             * @return The bytes for iv.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getIvBytes() {
                java.lang.Object ref = iv_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    iv_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(data_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 1, data_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(iv_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 2, iv_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(data_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, data_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(iv_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, iv_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.EncryptedData)) {
                    return super.equals(obj);
                }
                Login.EncryptedData other = (Login.EncryptedData) obj;

                if (!getData()
                        .equals(other.getData())) return false;
                if (!getIv()
                        .equals(other.getIv())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + DATA_FIELD_NUMBER;
                hash = (53 * hash) + getData().hashCode();
                hash = (37 * hash) + IV_FIELD_NUMBER;
                hash = (53 * hash) + getIv().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.EncryptedData parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.EncryptedData parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.EncryptedData parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.EncryptedData parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.EncryptedData parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.EncryptedData parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.EncryptedData parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.EncryptedData parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.EncryptedData parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.EncryptedData parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.EncryptedData parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.EncryptedData parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.EncryptedData prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.EncryptedData}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.EncryptedData)
                    Login.EncryptedDataOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_EncryptedData_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_EncryptedData_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.EncryptedData.class, Login.EncryptedData.Builder.class);
                }

                // Construct using toutiao.model.Login.EncryptedData.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    data_ = "";

                    iv_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_EncryptedData_descriptor;
                }

                @java.lang.Override
                public Login.EncryptedData getDefaultInstanceForType() {
                    return Login.EncryptedData.getDefaultInstance();
                }

                @java.lang.Override
                public Login.EncryptedData build() {
                    Login.EncryptedData result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.EncryptedData buildPartial() {
                    Login.EncryptedData result = new Login.EncryptedData(this);
                    result.data_ = data_;
                    result.iv_ = iv_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.EncryptedData) {
                        return mergeFrom((Login.EncryptedData)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.EncryptedData other) {
                    if (other == Login.EncryptedData.getDefaultInstance()) return this;
                    if (!other.getData().isEmpty()) {
                        data_ = other.data_;
                        onChanged();
                    }
                    if (!other.getIv().isEmpty()) {
                        iv_ = other.iv_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.EncryptedData parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.EncryptedData) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private java.lang.Object data_ = "";
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>string data = 1;</code>
                 * @return The data.
                 */
                public java.lang.String getData() {
                    java.lang.Object ref = data_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        data_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>string data = 1;</code>
                 * @return The bytes for data.
                 */
                public com.google.protobuf.ByteString
                getDataBytes() {
                    java.lang.Object ref = data_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        data_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>string data = 1;</code>
                 * @param value The data to set.
                 * @return This builder for chaining.
                 */
                public Builder setData(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    data_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>string data = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearData() {

                    data_ = getDefaultInstance().getData();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>string data = 1;</code>
                 * @param value The bytes for data to set.
                 * @return This builder for chaining.
                 */
                public Builder setDataBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    data_ = value;
                    onChanged();
                    return this;
                }

                private java.lang.Object iv_ = "";
                /**
                 * <pre>
                 * 随机iv
                 * </pre>
                 *
                 * <code>string iv = 2;</code>
                 * @return The iv.
                 */
                public java.lang.String getIv() {
                    java.lang.Object ref = iv_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        iv_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 随机iv
                 * </pre>
                 *
                 * <code>string iv = 2;</code>
                 * @return The bytes for iv.
                 */
                public com.google.protobuf.ByteString
                getIvBytes() {
                    java.lang.Object ref = iv_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        iv_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 随机iv
                 * </pre>
                 *
                 * <code>string iv = 2;</code>
                 * @param value The iv to set.
                 * @return This builder for chaining.
                 */
                public Builder setIv(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    iv_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 随机iv
                 * </pre>
                 *
                 * <code>string iv = 2;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearIv() {

                    iv_ = getDefaultInstance().getIv();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 随机iv
                 * </pre>
                 *
                 * <code>string iv = 2;</code>
                 * @param value The bytes for iv to set.
                 * @return This builder for chaining.
                 */
                public Builder setIvBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    iv_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.EncryptedData)
            }

            // @@protoc_insertion_point(class_scope:service.EncryptedData)
            private static final Login.EncryptedData DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.EncryptedData();
            }

            public static Login.EncryptedData getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<EncryptedData>
                    PARSER = new com.google.protobuf.AbstractParser<EncryptedData>() {
                @java.lang.Override
                public EncryptedData parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new EncryptedData(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<EncryptedData> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<EncryptedData> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.EncryptedData getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface ShowDataRequestOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.ShowDataRequest)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>.service.EncryptedData encryptedData = 1;</code>
             * @return Whether the encryptedData field is set.
             */
            boolean hasEncryptedData();
            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>.service.EncryptedData encryptedData = 1;</code>
             * @return The encryptedData.
             */
            Login.EncryptedData getEncryptedData();
            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>.service.EncryptedData encryptedData = 1;</code>
             */
            Login.EncryptedDataOrBuilder getEncryptedDataOrBuilder();

            /**
             * <pre>
             * 用户登录code
             * </pre>
             *
             * <code>string token = 2;</code>
             * @return The token.
             */
            java.lang.String getToken();
            /**
             * <pre>
             * 用户登录code
             * </pre>
             *
             * <code>string token = 2;</code>
             * @return The bytes for token.
             */
            com.google.protobuf.ByteString
            getTokenBytes();
        }
        /**
         * Protobuf type {@code service.ShowDataRequest}
         */
        public static final class ShowDataRequest extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.ShowDataRequest)
                ShowDataRequestOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use ShowDataRequest.newBuilder() to construct.
            private ShowDataRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private ShowDataRequest() {
                token_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new ShowDataRequest();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private ShowDataRequest(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                Login.EncryptedData.Builder subBuilder = null;
                                if (encryptedData_ != null) {
                                    subBuilder = encryptedData_.toBuilder();
                                }
                                encryptedData_ = input.readMessage(Login.EncryptedData.parser(), extensionRegistry);
                                if (subBuilder != null) {
                                    subBuilder.mergeFrom(encryptedData_);
                                    encryptedData_ = subBuilder.buildPartial();
                                }

                                break;
                            }
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();

                                token_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_ShowDataRequest_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_ShowDataRequest_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.ShowDataRequest.class, Login.ShowDataRequest.Builder.class);
            }

            public static final int ENCRYPTEDDATA_FIELD_NUMBER = 1;
            private Login.EncryptedData encryptedData_;
            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>.service.EncryptedData encryptedData = 1;</code>
             * @return Whether the encryptedData field is set.
             */
            @java.lang.Override
            public boolean hasEncryptedData() {
                return encryptedData_ != null;
            }
            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>.service.EncryptedData encryptedData = 1;</code>
             * @return The encryptedData.
             */
            @java.lang.Override
            public Login.EncryptedData getEncryptedData() {
                return encryptedData_ == null ? Login.EncryptedData.getDefaultInstance() : encryptedData_;
            }
            /**
             * <pre>
             * 用户加密数据
             * </pre>
             *
             * <code>.service.EncryptedData encryptedData = 1;</code>
             */
            @java.lang.Override
            public Login.EncryptedDataOrBuilder getEncryptedDataOrBuilder() {
                return getEncryptedData();
            }

            public static final int TOKEN_FIELD_NUMBER = 2;
            private volatile java.lang.Object token_;
            /**
             * <pre>
             * 用户登录code
             * </pre>
             *
             * <code>string token = 2;</code>
             * @return The token.
             */
            @java.lang.Override
            public java.lang.String getToken() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    token_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 用户登录code
             * </pre>
             *
             * <code>string token = 2;</code>
             * @return The bytes for token.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getTokenBytes() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    token_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (encryptedData_ != null) {
                    output.writeMessage(1, getEncryptedData());
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 2, token_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (encryptedData_ != null) {
                    size += com.google.protobuf.CodedOutputStream
                            .computeMessageSize(1, getEncryptedData());
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, token_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.ShowDataRequest)) {
                    return super.equals(obj);
                }
                Login.ShowDataRequest other = (Login.ShowDataRequest) obj;

                if (hasEncryptedData() != other.hasEncryptedData()) return false;
                if (hasEncryptedData()) {
                    if (!getEncryptedData()
                            .equals(other.getEncryptedData())) return false;
                }
                if (!getToken()
                        .equals(other.getToken())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                if (hasEncryptedData()) {
                    hash = (37 * hash) + ENCRYPTEDDATA_FIELD_NUMBER;
                    hash = (53 * hash) + getEncryptedData().hashCode();
                }
                hash = (37 * hash) + TOKEN_FIELD_NUMBER;
                hash = (53 * hash) + getToken().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.ShowDataRequest parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.ShowDataRequest parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.ShowDataRequest parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.ShowDataRequest parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.ShowDataRequest parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.ShowDataRequest parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.ShowDataRequest parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.ShowDataRequest parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.ShowDataRequest parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.ShowDataRequest parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.ShowDataRequest parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.ShowDataRequest parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.ShowDataRequest prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.ShowDataRequest}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.ShowDataRequest)
                    Login.ShowDataRequestOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_ShowDataRequest_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_ShowDataRequest_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.ShowDataRequest.class, Login.ShowDataRequest.Builder.class);
                }

                // Construct using toutiao.model.Login.ShowDataRequest.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    if (encryptedDataBuilder_ == null) {
                        encryptedData_ = null;
                    } else {
                        encryptedData_ = null;
                        encryptedDataBuilder_ = null;
                    }
                    token_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_ShowDataRequest_descriptor;
                }

                @java.lang.Override
                public Login.ShowDataRequest getDefaultInstanceForType() {
                    return Login.ShowDataRequest.getDefaultInstance();
                }

                @java.lang.Override
                public Login.ShowDataRequest build() {
                    Login.ShowDataRequest result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.ShowDataRequest buildPartial() {
                    Login.ShowDataRequest result = new Login.ShowDataRequest(this);
                    if (encryptedDataBuilder_ == null) {
                        result.encryptedData_ = encryptedData_;
                    } else {
                        result.encryptedData_ = encryptedDataBuilder_.build();
                    }
                    result.token_ = token_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.ShowDataRequest) {
                        return mergeFrom((Login.ShowDataRequest)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.ShowDataRequest other) {
                    if (other == Login.ShowDataRequest.getDefaultInstance()) return this;
                    if (other.hasEncryptedData()) {
                        mergeEncryptedData(other.getEncryptedData());
                    }
                    if (!other.getToken().isEmpty()) {
                        token_ = other.token_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.ShowDataRequest parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.ShowDataRequest) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private Login.EncryptedData encryptedData_;
                private com.google.protobuf.SingleFieldBuilderV3<
                        Login.EncryptedData, Login.EncryptedData.Builder, Login.EncryptedDataOrBuilder> encryptedDataBuilder_;
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 * @return Whether the encryptedData field is set.
                 */
                public boolean hasEncryptedData() {
                    return encryptedDataBuilder_ != null || encryptedData_ != null;
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 * @return The encryptedData.
                 */
                public Login.EncryptedData getEncryptedData() {
                    if (encryptedDataBuilder_ == null) {
                        return encryptedData_ == null ? Login.EncryptedData.getDefaultInstance() : encryptedData_;
                    } else {
                        return encryptedDataBuilder_.getMessage();
                    }
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 */
                public Builder setEncryptedData(Login.EncryptedData value) {
                    if (encryptedDataBuilder_ == null) {
                        if (value == null) {
                            throw new NullPointerException();
                        }
                        encryptedData_ = value;
                        onChanged();
                    } else {
                        encryptedDataBuilder_.setMessage(value);
                    }

                    return this;
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 */
                public Builder setEncryptedData(
                        Login.EncryptedData.Builder builderForValue) {
                    if (encryptedDataBuilder_ == null) {
                        encryptedData_ = builderForValue.build();
                        onChanged();
                    } else {
                        encryptedDataBuilder_.setMessage(builderForValue.build());
                    }

                    return this;
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 */
                public Builder mergeEncryptedData(Login.EncryptedData value) {
                    if (encryptedDataBuilder_ == null) {
                        if (encryptedData_ != null) {
                            encryptedData_ =
                                    Login.EncryptedData.newBuilder(encryptedData_).mergeFrom(value).buildPartial();
                        } else {
                            encryptedData_ = value;
                        }
                        onChanged();
                    } else {
                        encryptedDataBuilder_.mergeFrom(value);
                    }

                    return this;
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 */
                public Builder clearEncryptedData() {
                    if (encryptedDataBuilder_ == null) {
                        encryptedData_ = null;
                        onChanged();
                    } else {
                        encryptedData_ = null;
                        encryptedDataBuilder_ = null;
                    }

                    return this;
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 */
                public Login.EncryptedData.Builder getEncryptedDataBuilder() {

                    onChanged();
                    return getEncryptedDataFieldBuilder().getBuilder();
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 */
                public Login.EncryptedDataOrBuilder getEncryptedDataOrBuilder() {
                    if (encryptedDataBuilder_ != null) {
                        return encryptedDataBuilder_.getMessageOrBuilder();
                    } else {
                        return encryptedData_ == null ?
                                Login.EncryptedData.getDefaultInstance() : encryptedData_;
                    }
                }
                /**
                 * <pre>
                 * 用户加密数据
                 * </pre>
                 *
                 * <code>.service.EncryptedData encryptedData = 1;</code>
                 */
                private com.google.protobuf.SingleFieldBuilderV3<
                        Login.EncryptedData, Login.EncryptedData.Builder, Login.EncryptedDataOrBuilder>
                getEncryptedDataFieldBuilder() {
                    if (encryptedDataBuilder_ == null) {
                        encryptedDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                                Login.EncryptedData, Login.EncryptedData.Builder, Login.EncryptedDataOrBuilder>(
                                getEncryptedData(),
                                getParentForChildren(),
                                isClean());
                        encryptedData_ = null;
                    }
                    return encryptedDataBuilder_;
                }

                private java.lang.Object token_ = "";
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string token = 2;</code>
                 * @return The token.
                 */
                public java.lang.String getToken() {
                    java.lang.Object ref = token_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        token_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string token = 2;</code>
                 * @return The bytes for token.
                 */
                public com.google.protobuf.ByteString
                getTokenBytes() {
                    java.lang.Object ref = token_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        token_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string token = 2;</code>
                 * @param value The token to set.
                 * @return This builder for chaining.
                 */
                public Builder setToken(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    token_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string token = 2;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearToken() {

                    token_ = getDefaultInstance().getToken();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string token = 2;</code>
                 * @param value The bytes for token to set.
                 * @return This builder for chaining.
                 */
                public Builder setTokenBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    token_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.ShowDataRequest)
            }

            // @@protoc_insertion_point(class_scope:service.ShowDataRequest)
            private static final Login.ShowDataRequest DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.ShowDataRequest();
            }

            public static Login.ShowDataRequest getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<ShowDataRequest>
                    PARSER = new com.google.protobuf.AbstractParser<ShowDataRequest>() {
                @java.lang.Override
                public ShowDataRequest parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new ShowDataRequest(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<ShowDataRequest> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<ShowDataRequest> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.ShowDataRequest getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface ShowDataResponseOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.ShowDataResponse)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 接口返回
             * </pre>
             *
             * <code>int32 errCode = 1;</code>
             * @return The errCode.
             */
            int getErrCode();

            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The errMsg.
             */
            java.lang.String getErrMsg();
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The bytes for errMsg.
             */
            com.google.protobuf.ByteString
            getErrMsgBytes();

            /**
             * <pre>
             * 原始数据信息
             * </pre>
             *
             * <code>string decryptedData = 3;</code>
             * @return The decryptedData.
             */
            java.lang.String getDecryptedData();
            /**
             * <pre>
             * 原始数据信息
             * </pre>
             *
             * <code>string decryptedData = 3;</code>
             * @return The bytes for decryptedData.
             */
            com.google.protobuf.ByteString
            getDecryptedDataBytes();

            /**
             * <pre>
             * 用户token
             * </pre>
             *
             * <code>string token = 4;</code>
             * @return The token.
             */
            java.lang.String getToken();
            /**
             * <pre>
             * 用户token
             * </pre>
             *
             * <code>string token = 4;</code>
             * @return The bytes for token.
             */
            com.google.protobuf.ByteString
            getTokenBytes();
        }
        /**
         * Protobuf type {@code service.ShowDataResponse}
         */
        public static final class ShowDataResponse extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.ShowDataResponse)
                ShowDataResponseOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use ShowDataResponse.newBuilder() to construct.
            private ShowDataResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private ShowDataResponse() {
                errMsg_ = "";
                decryptedData_ = "";
                token_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new ShowDataResponse();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private ShowDataResponse(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 8: {

                                errCode_ = input.readInt32();
                                break;
                            }
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();

                                errMsg_ = s;
                                break;
                            }
                            case 26: {
                                java.lang.String s = input.readStringRequireUtf8();

                                decryptedData_ = s;
                                break;
                            }
                            case 34: {
                                java.lang.String s = input.readStringRequireUtf8();

                                token_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_ShowDataResponse_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_ShowDataResponse_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.ShowDataResponse.class, Login.ShowDataResponse.Builder.class);
            }

            public static final int ERRCODE_FIELD_NUMBER = 1;
            private int errCode_;
            /**
             * <pre>
             * 接口返回
             * </pre>
             *
             * <code>int32 errCode = 1;</code>
             * @return The errCode.
             */
            @java.lang.Override
            public int getErrCode() {
                return errCode_;
            }

            public static final int ERRMSG_FIELD_NUMBER = 2;
            private volatile java.lang.Object errMsg_;
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The errMsg.
             */
            @java.lang.Override
            public java.lang.String getErrMsg() {
                java.lang.Object ref = errMsg_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    errMsg_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The bytes for errMsg.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getErrMsgBytes() {
                java.lang.Object ref = errMsg_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    errMsg_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            public static final int DECRYPTEDDATA_FIELD_NUMBER = 3;
            private volatile java.lang.Object decryptedData_;
            /**
             * <pre>
             * 原始数据信息
             * </pre>
             *
             * <code>string decryptedData = 3;</code>
             * @return The decryptedData.
             */
            @java.lang.Override
            public java.lang.String getDecryptedData() {
                java.lang.Object ref = decryptedData_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    decryptedData_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 原始数据信息
             * </pre>
             *
             * <code>string decryptedData = 3;</code>
             * @return The bytes for decryptedData.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getDecryptedDataBytes() {
                java.lang.Object ref = decryptedData_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    decryptedData_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            public static final int TOKEN_FIELD_NUMBER = 4;
            private volatile java.lang.Object token_;
            /**
             * <pre>
             * 用户token
             * </pre>
             *
             * <code>string token = 4;</code>
             * @return The token.
             */
            @java.lang.Override
            public java.lang.String getToken() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    token_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 用户token
             * </pre>
             *
             * <code>string token = 4;</code>
             * @return The bytes for token.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getTokenBytes() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    token_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (errCode_ != 0) {
                    output.writeInt32(1, errCode_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errMsg_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(decryptedData_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 3, decryptedData_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 4, token_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (errCode_ != 0) {
                    size += com.google.protobuf.CodedOutputStream
                            .computeInt32Size(1, errCode_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errMsg_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(decryptedData_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, decryptedData_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, token_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.ShowDataResponse)) {
                    return super.equals(obj);
                }
                Login.ShowDataResponse other = (Login.ShowDataResponse) obj;

                if (getErrCode()
                        != other.getErrCode()) return false;
                if (!getErrMsg()
                        .equals(other.getErrMsg())) return false;
                if (!getDecryptedData()
                        .equals(other.getDecryptedData())) return false;
                if (!getToken()
                        .equals(other.getToken())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + ERRCODE_FIELD_NUMBER;
                hash = (53 * hash) + getErrCode();
                hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
                hash = (53 * hash) + getErrMsg().hashCode();
                hash = (37 * hash) + DECRYPTEDDATA_FIELD_NUMBER;
                hash = (53 * hash) + getDecryptedData().hashCode();
                hash = (37 * hash) + TOKEN_FIELD_NUMBER;
                hash = (53 * hash) + getToken().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.ShowDataResponse parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.ShowDataResponse parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.ShowDataResponse parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.ShowDataResponse parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.ShowDataResponse parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.ShowDataResponse parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.ShowDataResponse parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.ShowDataResponse parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.ShowDataResponse parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.ShowDataResponse parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.ShowDataResponse parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.ShowDataResponse parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.ShowDataResponse prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.ShowDataResponse}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.ShowDataResponse)
                    Login.ShowDataResponseOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_ShowDataResponse_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_ShowDataResponse_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.ShowDataResponse.class, Login.ShowDataResponse.Builder.class);
                }

                // Construct using toutiao.model.Login.ShowDataResponse.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    errCode_ = 0;

                    errMsg_ = "";

                    decryptedData_ = "";

                    token_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_ShowDataResponse_descriptor;
                }

                @java.lang.Override
                public Login.ShowDataResponse getDefaultInstanceForType() {
                    return Login.ShowDataResponse.getDefaultInstance();
                }

                @java.lang.Override
                public Login.ShowDataResponse build() {
                    Login.ShowDataResponse result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.ShowDataResponse buildPartial() {
                    Login.ShowDataResponse result = new Login.ShowDataResponse(this);
                    result.errCode_ = errCode_;
                    result.errMsg_ = errMsg_;
                    result.decryptedData_ = decryptedData_;
                    result.token_ = token_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.ShowDataResponse) {
                        return mergeFrom((Login.ShowDataResponse)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.ShowDataResponse other) {
                    if (other == Login.ShowDataResponse.getDefaultInstance()) return this;
                    if (other.getErrCode() != 0) {
                        setErrCode(other.getErrCode());
                    }
                    if (!other.getErrMsg().isEmpty()) {
                        errMsg_ = other.errMsg_;
                        onChanged();
                    }
                    if (!other.getDecryptedData().isEmpty()) {
                        decryptedData_ = other.decryptedData_;
                        onChanged();
                    }
                    if (!other.getToken().isEmpty()) {
                        token_ = other.token_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.ShowDataResponse parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.ShowDataResponse) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private int errCode_ ;
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @return The errCode.
                 */
                @java.lang.Override
                public int getErrCode() {
                    return errCode_;
                }
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @param value The errCode to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrCode(int value) {

                    errCode_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearErrCode() {

                    errCode_ = 0;
                    onChanged();
                    return this;
                }

                private java.lang.Object errMsg_ = "";
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return The errMsg.
                 */
                public java.lang.String getErrMsg() {
                    java.lang.Object ref = errMsg_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        errMsg_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return The bytes for errMsg.
                 */
                public com.google.protobuf.ByteString
                getErrMsgBytes() {
                    java.lang.Object ref = errMsg_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        errMsg_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @param value The errMsg to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrMsg(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    errMsg_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearErrMsg() {

                    errMsg_ = getDefaultInstance().getErrMsg();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @param value The bytes for errMsg to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrMsgBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    errMsg_ = value;
                    onChanged();
                    return this;
                }

                private java.lang.Object decryptedData_ = "";
                /**
                 * <pre>
                 * 原始数据信息
                 * </pre>
                 *
                 * <code>string decryptedData = 3;</code>
                 * @return The decryptedData.
                 */
                public java.lang.String getDecryptedData() {
                    java.lang.Object ref = decryptedData_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        decryptedData_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 原始数据信息
                 * </pre>
                 *
                 * <code>string decryptedData = 3;</code>
                 * @return The bytes for decryptedData.
                 */
                public com.google.protobuf.ByteString
                getDecryptedDataBytes() {
                    java.lang.Object ref = decryptedData_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        decryptedData_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 原始数据信息
                 * </pre>
                 *
                 * <code>string decryptedData = 3;</code>
                 * @param value The decryptedData to set.
                 * @return This builder for chaining.
                 */
                public Builder setDecryptedData(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    decryptedData_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 原始数据信息
                 * </pre>
                 *
                 * <code>string decryptedData = 3;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearDecryptedData() {

                    decryptedData_ = getDefaultInstance().getDecryptedData();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 原始数据信息
                 * </pre>
                 *
                 * <code>string decryptedData = 3;</code>
                 * @param value The bytes for decryptedData to set.
                 * @return This builder for chaining.
                 */
                public Builder setDecryptedDataBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    decryptedData_ = value;
                    onChanged();
                    return this;
                }

                private java.lang.Object token_ = "";
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 4;</code>
                 * @return The token.
                 */
                public java.lang.String getToken() {
                    java.lang.Object ref = token_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        token_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 4;</code>
                 * @return The bytes for token.
                 */
                public com.google.protobuf.ByteString
                getTokenBytes() {
                    java.lang.Object ref = token_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        token_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 4;</code>
                 * @param value The token to set.
                 * @return This builder for chaining.
                 */
                public Builder setToken(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    token_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 4;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearToken() {

                    token_ = getDefaultInstance().getToken();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 4;</code>
                 * @param value The bytes for token to set.
                 * @return This builder for chaining.
                 */
                public Builder setTokenBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    token_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.ShowDataResponse)
            }

            // @@protoc_insertion_point(class_scope:service.ShowDataResponse)
            private static final Login.ShowDataResponse DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.ShowDataResponse();
            }

            public static Login.ShowDataResponse getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<ShowDataResponse>
                    PARSER = new com.google.protobuf.AbstractParser<ShowDataResponse>() {
                @java.lang.Override
                public ShowDataResponse parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new ShowDataResponse(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<ShowDataResponse> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<ShowDataResponse> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.ShowDataResponse getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface LoginRequestOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.LoginRequest)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 用户登录code
             * </pre>
             *
             * <code>string code = 1;</code>
             * @return The code.
             */
            java.lang.String getCode();
            /**
             * <pre>
             * 用户登录code
             * </pre>
             *
             * <code>string code = 1;</code>
             * @return The bytes for code.
             */
            com.google.protobuf.ByteString
            getCodeBytes();
        }
        /**
         * Protobuf type {@code service.LoginRequest}
         */
        public static final class LoginRequest extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.LoginRequest)
                LoginRequestOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use LoginRequest.newBuilder() to construct.
            private LoginRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private LoginRequest() {
                code_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new LoginRequest();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private LoginRequest(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();

                                code_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_LoginRequest_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_LoginRequest_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.LoginRequest.class, Login.LoginRequest.Builder.class);
            }

            public static final int CODE_FIELD_NUMBER = 1;
            private volatile java.lang.Object code_;
            /**
             * <pre>
             * 用户登录code
             * </pre>
             *
             * <code>string code = 1;</code>
             * @return The code.
             */
            @java.lang.Override
            public java.lang.String getCode() {
                java.lang.Object ref = code_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    code_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 用户登录code
             * </pre>
             *
             * <code>string code = 1;</code>
             * @return The bytes for code.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getCodeBytes() {
                java.lang.Object ref = code_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    code_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 1, code_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(code_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, code_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.LoginRequest)) {
                    return super.equals(obj);
                }
                Login.LoginRequest other = (Login.LoginRequest) obj;

                if (!getCode()
                        .equals(other.getCode())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + CODE_FIELD_NUMBER;
                hash = (53 * hash) + getCode().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.LoginRequest parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LoginRequest parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LoginRequest parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LoginRequest parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LoginRequest parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LoginRequest parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LoginRequest parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.LoginRequest parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.LoginRequest parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.LoginRequest parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.LoginRequest parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.LoginRequest parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.LoginRequest prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.LoginRequest}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.LoginRequest)
                    Login.LoginRequestOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_LoginRequest_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_LoginRequest_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.LoginRequest.class, Login.LoginRequest.Builder.class);
                }

                // Construct using toutiao.model.Login.LoginRequest.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    code_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_LoginRequest_descriptor;
                }

                @java.lang.Override
                public Login.LoginRequest getDefaultInstanceForType() {
                    return Login.LoginRequest.getDefaultInstance();
                }

                @java.lang.Override
                public Login.LoginRequest build() {
                    Login.LoginRequest result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.LoginRequest buildPartial() {
                    Login.LoginRequest result = new Login.LoginRequest(this);
                    result.code_ = code_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.LoginRequest) {
                        return mergeFrom((Login.LoginRequest)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.LoginRequest other) {
                    if (other == Login.LoginRequest.getDefaultInstance()) return this;
                    if (!other.getCode().isEmpty()) {
                        code_ = other.code_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.LoginRequest parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.LoginRequest) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private java.lang.Object code_ = "";
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string code = 1;</code>
                 * @return The code.
                 */
                public java.lang.String getCode() {
                    java.lang.Object ref = code_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        code_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string code = 1;</code>
                 * @return The bytes for code.
                 */
                public com.google.protobuf.ByteString
                getCodeBytes() {
                    java.lang.Object ref = code_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        code_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string code = 1;</code>
                 * @param value The code to set.
                 * @return This builder for chaining.
                 */
                public Builder setCode(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    code_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string code = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearCode() {

                    code_ = getDefaultInstance().getCode();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户登录code
                 * </pre>
                 *
                 * <code>string code = 1;</code>
                 * @param value The bytes for code to set.
                 * @return This builder for chaining.
                 */
                public Builder setCodeBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    code_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.LoginRequest)
            }

            // @@protoc_insertion_point(class_scope:service.LoginRequest)
            private static final Login.LoginRequest DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.LoginRequest();
            }

            public static Login.LoginRequest getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<LoginRequest>
                    PARSER = new com.google.protobuf.AbstractParser<LoginRequest>() {
                @java.lang.Override
                public LoginRequest parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new LoginRequest(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<LoginRequest> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<LoginRequest> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.LoginRequest getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface LoginResponseOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.LoginResponse)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 接口返回
             * </pre>
             *
             * <code>int32 errCode = 1;</code>
             * @return The errCode.
             */
            int getErrCode();

            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The errMsg.
             */
            java.lang.String getErrMsg();
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The bytes for errMsg.
             */
            com.google.protobuf.ByteString
            getErrMsgBytes();

            /**
             * <pre>
             * 用户token
             * </pre>
             *
             * <code>string token = 3;</code>
             * @return The token.
             */
            java.lang.String getToken();
            /**
             * <pre>
             * 用户token
             * </pre>
             *
             * <code>string token = 3;</code>
             * @return The bytes for token.
             */
            com.google.protobuf.ByteString
            getTokenBytes();

            /**
             * <code>string openid = 4;</code>
             * @return The openid.
             */
            java.lang.String getOpenid();
            /**
             * <code>string openid = 4;</code>
             * @return The bytes for openid.
             */
            com.google.protobuf.ByteString
            getOpenidBytes();

            /**
             * <code>string unionid = 5;</code>
             * @return The unionid.
             */
            java.lang.String getUnionid();
            /**
             * <code>string unionid = 5;</code>
             * @return The bytes for unionid.
             */
            com.google.protobuf.ByteString
            getUnionidBytes();
        }
        /**
         * Protobuf type {@code service.LoginResponse}
         */
        public static final class LoginResponse extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.LoginResponse)
                LoginResponseOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use LoginResponse.newBuilder() to construct.
            private LoginResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private LoginResponse() {
                errMsg_ = "";
                token_ = "";
                openid_ = "";
                unionid_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new LoginResponse();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private LoginResponse(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 8: {

                                errCode_ = input.readInt32();
                                break;
                            }
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();

                                errMsg_ = s;
                                break;
                            }
                            case 26: {
                                java.lang.String s = input.readStringRequireUtf8();

                                token_ = s;
                                break;
                            }
                            case 34: {
                                java.lang.String s = input.readStringRequireUtf8();

                                openid_ = s;
                                break;
                            }
                            case 42: {
                                java.lang.String s = input.readStringRequireUtf8();

                                unionid_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_LoginResponse_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_LoginResponse_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.LoginResponse.class, Login.LoginResponse.Builder.class);
            }

            public static final int ERRCODE_FIELD_NUMBER = 1;
            private int errCode_;
            /**
             * <pre>
             * 接口返回
             * </pre>
             *
             * <code>int32 errCode = 1;</code>
             * @return The errCode.
             */
            @java.lang.Override
            public int getErrCode() {
                return errCode_;
            }

            public static final int ERRMSG_FIELD_NUMBER = 2;
            private volatile java.lang.Object errMsg_;
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The errMsg.
             */
            @java.lang.Override
            public java.lang.String getErrMsg() {
                java.lang.Object ref = errMsg_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    errMsg_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The bytes for errMsg.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getErrMsgBytes() {
                java.lang.Object ref = errMsg_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    errMsg_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            public static final int TOKEN_FIELD_NUMBER = 3;
            private volatile java.lang.Object token_;
            /**
             * <pre>
             * 用户token
             * </pre>
             *
             * <code>string token = 3;</code>
             * @return The token.
             */
            @java.lang.Override
            public java.lang.String getToken() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    token_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 用户token
             * </pre>
             *
             * <code>string token = 3;</code>
             * @return The bytes for token.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getTokenBytes() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    token_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            public static final int OPENID_FIELD_NUMBER = 4;
            private volatile java.lang.Object openid_;
            /**
             * <code>string openid = 4;</code>
             * @return The openid.
             */
            @java.lang.Override
            public java.lang.String getOpenid() {
                java.lang.Object ref = openid_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    openid_ = s;
                    return s;
                }
            }
            /**
             * <code>string openid = 4;</code>
             * @return The bytes for openid.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getOpenidBytes() {
                java.lang.Object ref = openid_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    openid_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            public static final int UNIONID_FIELD_NUMBER = 5;
            private volatile java.lang.Object unionid_;
            /**
             * <code>string unionid = 5;</code>
             * @return The unionid.
             */
            @java.lang.Override
            public java.lang.String getUnionid() {
                java.lang.Object ref = unionid_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    unionid_ = s;
                    return s;
                }
            }
            /**
             * <code>string unionid = 5;</code>
             * @return The bytes for unionid.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getUnionidBytes() {
                java.lang.Object ref = unionid_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    unionid_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (errCode_ != 0) {
                    output.writeInt32(1, errCode_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errMsg_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 3, token_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(openid_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 4, openid_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(unionid_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 5, unionid_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (errCode_ != 0) {
                    size += com.google.protobuf.CodedOutputStream
                            .computeInt32Size(1, errCode_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errMsg_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, token_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(openid_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, openid_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(unionid_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, unionid_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.LoginResponse)) {
                    return super.equals(obj);
                }
                Login.LoginResponse other = (Login.LoginResponse) obj;

                if (getErrCode()
                        != other.getErrCode()) return false;
                if (!getErrMsg()
                        .equals(other.getErrMsg())) return false;
                if (!getToken()
                        .equals(other.getToken())) return false;
                if (!getOpenid()
                        .equals(other.getOpenid())) return false;
                if (!getUnionid()
                        .equals(other.getUnionid())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + ERRCODE_FIELD_NUMBER;
                hash = (53 * hash) + getErrCode();
                hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
                hash = (53 * hash) + getErrMsg().hashCode();
                hash = (37 * hash) + TOKEN_FIELD_NUMBER;
                hash = (53 * hash) + getToken().hashCode();
                hash = (37 * hash) + OPENID_FIELD_NUMBER;
                hash = (53 * hash) + getOpenid().hashCode();
                hash = (37 * hash) + UNIONID_FIELD_NUMBER;
                hash = (53 * hash) + getUnionid().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.LoginResponse parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LoginResponse parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LoginResponse parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LoginResponse parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LoginResponse parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LoginResponse parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LoginResponse parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.LoginResponse parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.LoginResponse parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.LoginResponse parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.LoginResponse parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.LoginResponse parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.LoginResponse prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.LoginResponse}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.LoginResponse)
                    Login.LoginResponseOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_LoginResponse_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_LoginResponse_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.LoginResponse.class, Login.LoginResponse.Builder.class);
                }

                // Construct using toutiao.model.Login.LoginResponse.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    errCode_ = 0;

                    errMsg_ = "";

                    token_ = "";

                    openid_ = "";

                    unionid_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_LoginResponse_descriptor;
                }

                @java.lang.Override
                public Login.LoginResponse getDefaultInstanceForType() {
                    return Login.LoginResponse.getDefaultInstance();
                }

                @java.lang.Override
                public Login.LoginResponse build() {
                    Login.LoginResponse result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.LoginResponse buildPartial() {
                    Login.LoginResponse result = new Login.LoginResponse(this);
                    result.errCode_ = errCode_;
                    result.errMsg_ = errMsg_;
                    result.token_ = token_;
                    result.openid_ = openid_;
                    result.unionid_ = unionid_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.LoginResponse) {
                        return mergeFrom((Login.LoginResponse)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.LoginResponse other) {
                    if (other == Login.LoginResponse.getDefaultInstance()) return this;
                    if (other.getErrCode() != 0) {
                        setErrCode(other.getErrCode());
                    }
                    if (!other.getErrMsg().isEmpty()) {
                        errMsg_ = other.errMsg_;
                        onChanged();
                    }
                    if (!other.getToken().isEmpty()) {
                        token_ = other.token_;
                        onChanged();
                    }
                    if (!other.getOpenid().isEmpty()) {
                        openid_ = other.openid_;
                        onChanged();
                    }
                    if (!other.getUnionid().isEmpty()) {
                        unionid_ = other.unionid_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.LoginResponse parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.LoginResponse) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private int errCode_ ;
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @return The errCode.
                 */
                @java.lang.Override
                public int getErrCode() {
                    return errCode_;
                }
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @param value The errCode to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrCode(int value) {

                    errCode_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearErrCode() {

                    errCode_ = 0;
                    onChanged();
                    return this;
                }

                private java.lang.Object errMsg_ = "";
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return The errMsg.
                 */
                public java.lang.String getErrMsg() {
                    java.lang.Object ref = errMsg_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        errMsg_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return The bytes for errMsg.
                 */
                public com.google.protobuf.ByteString
                getErrMsgBytes() {
                    java.lang.Object ref = errMsg_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        errMsg_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @param value The errMsg to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrMsg(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    errMsg_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearErrMsg() {

                    errMsg_ = getDefaultInstance().getErrMsg();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @param value The bytes for errMsg to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrMsgBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    errMsg_ = value;
                    onChanged();
                    return this;
                }

                private java.lang.Object token_ = "";
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 3;</code>
                 * @return The token.
                 */
                public java.lang.String getToken() {
                    java.lang.Object ref = token_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        token_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 3;</code>
                 * @return The bytes for token.
                 */
                public com.google.protobuf.ByteString
                getTokenBytes() {
                    java.lang.Object ref = token_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        token_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 3;</code>
                 * @param value The token to set.
                 * @return This builder for chaining.
                 */
                public Builder setToken(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    token_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 3;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearToken() {

                    token_ = getDefaultInstance().getToken();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户token
                 * </pre>
                 *
                 * <code>string token = 3;</code>
                 * @param value The bytes for token to set.
                 * @return This builder for chaining.
                 */
                public Builder setTokenBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    token_ = value;
                    onChanged();
                    return this;
                }

                private java.lang.Object openid_ = "";
                /**
                 * <code>string openid = 4;</code>
                 * @return The openid.
                 */
                public java.lang.String getOpenid() {
                    java.lang.Object ref = openid_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        openid_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <code>string openid = 4;</code>
                 * @return The bytes for openid.
                 */
                public com.google.protobuf.ByteString
                getOpenidBytes() {
                    java.lang.Object ref = openid_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        openid_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <code>string openid = 4;</code>
                 * @param value The openid to set.
                 * @return This builder for chaining.
                 */
                public Builder setOpenid(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    openid_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <code>string openid = 4;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearOpenid() {

                    openid_ = getDefaultInstance().getOpenid();
                    onChanged();
                    return this;
                }
                /**
                 * <code>string openid = 4;</code>
                 * @param value The bytes for openid to set.
                 * @return This builder for chaining.
                 */
                public Builder setOpenidBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    openid_ = value;
                    onChanged();
                    return this;
                }

                private java.lang.Object unionid_ = "";
                /**
                 * <code>string unionid = 5;</code>
                 * @return The unionid.
                 */
                public java.lang.String getUnionid() {
                    java.lang.Object ref = unionid_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        unionid_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <code>string unionid = 5;</code>
                 * @return The bytes for unionid.
                 */
                public com.google.protobuf.ByteString
                getUnionidBytes() {
                    java.lang.Object ref = unionid_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        unionid_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <code>string unionid = 5;</code>
                 * @param value The unionid to set.
                 * @return This builder for chaining.
                 */
                public Builder setUnionid(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    unionid_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <code>string unionid = 5;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearUnionid() {

                    unionid_ = getDefaultInstance().getUnionid();
                    onChanged();
                    return this;
                }
                /**
                 * <code>string unionid = 5;</code>
                 * @param value The bytes for unionid to set.
                 * @return This builder for chaining.
                 */
                public Builder setUnionidBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    unionid_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.LoginResponse)
            }

            // @@protoc_insertion_point(class_scope:service.LoginResponse)
            private static final Login.LoginResponse DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.LoginResponse();
            }

            public static Login.LoginResponse getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<LoginResponse>
                    PARSER = new com.google.protobuf.AbstractParser<LoginResponse>() {
                @java.lang.Override
                public LoginResponse parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new LoginResponse(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<LoginResponse> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<LoginResponse> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.LoginResponse getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface UserDataOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.UserData)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <code>string data = 1;</code>
             * @return The data.
             */
            java.lang.String getData();
            /**
             * <code>string data = 1;</code>
             * @return The bytes for data.
             */
            com.google.protobuf.ByteString
            getDataBytes();
        }
        /**
         * Protobuf type {@code service.UserData}
         */
        public static final class UserData extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.UserData)
                UserDataOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use UserData.newBuilder() to construct.
            private UserData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private UserData() {
                data_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new UserData();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private UserData(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();

                                data_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_UserData_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_UserData_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.UserData.class, Login.UserData.Builder.class);
            }

            public static final int DATA_FIELD_NUMBER = 1;
            private volatile java.lang.Object data_;
            /**
             * <code>string data = 1;</code>
             * @return The data.
             */
            @java.lang.Override
            public java.lang.String getData() {
                java.lang.Object ref = data_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    data_ = s;
                    return s;
                }
            }
            /**
             * <code>string data = 1;</code>
             * @return The bytes for data.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getDataBytes() {
                java.lang.Object ref = data_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    data_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(data_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 1, data_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(data_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, data_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.UserData)) {
                    return super.equals(obj);
                }
                Login.UserData other = (Login.UserData) obj;

                if (!getData()
                        .equals(other.getData())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + DATA_FIELD_NUMBER;
                hash = (53 * hash) + getData().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.UserData parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserData parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserData parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserData parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserData parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserData parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserData parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.UserData parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.UserData parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.UserData parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.UserData parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.UserData parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.UserData prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.UserData}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.UserData)
                    Login.UserDataOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_UserData_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_UserData_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.UserData.class, Login.UserData.Builder.class);
                }

                // Construct using toutiao.model.Login.UserData.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    data_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_UserData_descriptor;
                }

                @java.lang.Override
                public Login.UserData getDefaultInstanceForType() {
                    return Login.UserData.getDefaultInstance();
                }

                @java.lang.Override
                public Login.UserData build() {
                    Login.UserData result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.UserData buildPartial() {
                    Login.UserData result = new Login.UserData(this);
                    result.data_ = data_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.UserData) {
                        return mergeFrom((Login.UserData)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.UserData other) {
                    if (other == Login.UserData.getDefaultInstance()) return this;
                    if (!other.getData().isEmpty()) {
                        data_ = other.data_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.UserData parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.UserData) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private java.lang.Object data_ = "";
                /**
                 * <code>string data = 1;</code>
                 * @return The data.
                 */
                public java.lang.String getData() {
                    java.lang.Object ref = data_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        data_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <code>string data = 1;</code>
                 * @return The bytes for data.
                 */
                public com.google.protobuf.ByteString
                getDataBytes() {
                    java.lang.Object ref = data_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        data_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <code>string data = 1;</code>
                 * @param value The data to set.
                 * @return This builder for chaining.
                 */
                public Builder setData(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    data_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <code>string data = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearData() {

                    data_ = getDefaultInstance().getData();
                    onChanged();
                    return this;
                }
                /**
                 * <code>string data = 1;</code>
                 * @param value The bytes for data to set.
                 * @return This builder for chaining.
                 */
                public Builder setDataBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    data_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.UserData)
            }

            // @@protoc_insertion_point(class_scope:service.UserData)
            private static final Login.UserData DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.UserData();
            }

            public static Login.UserData getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<UserData>
                    PARSER = new com.google.protobuf.AbstractParser<UserData>() {
                @java.lang.Override
                public UserData parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new UserData(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<UserData> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<UserData> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.UserData getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface UserDataRequestOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.UserDataRequest)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 用户账户id，三方不传时，仅使用code
             * </pre>
             *
             * <code>string token = 1;</code>
             * @return The token.
             */
            java.lang.String getToken();
            /**
             * <pre>
             * 用户账户id，三方不传时，仅使用code
             * </pre>
             *
             * <code>string token = 1;</code>
             * @return The bytes for token.
             */
            com.google.protobuf.ByteString
            getTokenBytes();
        }
        /**
         * Protobuf type {@code service.UserDataRequest}
         */
        public static final class UserDataRequest extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.UserDataRequest)
                UserDataRequestOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use UserDataRequest.newBuilder() to construct.
            private UserDataRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private UserDataRequest() {
                token_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new UserDataRequest();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private UserDataRequest(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();

                                token_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_UserDataRequest_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_UserDataRequest_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.UserDataRequest.class, Login.UserDataRequest.Builder.class);
            }

            public static final int TOKEN_FIELD_NUMBER = 1;
            private volatile java.lang.Object token_;
            /**
             * <pre>
             * 用户账户id，三方不传时，仅使用code
             * </pre>
             *
             * <code>string token = 1;</code>
             * @return The token.
             */
            @java.lang.Override
            public java.lang.String getToken() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    token_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 用户账户id，三方不传时，仅使用code
             * </pre>
             *
             * <code>string token = 1;</code>
             * @return The bytes for token.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getTokenBytes() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    token_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 1, token_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, token_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.UserDataRequest)) {
                    return super.equals(obj);
                }
                Login.UserDataRequest other = (Login.UserDataRequest) obj;

                if (!getToken()
                        .equals(other.getToken())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + TOKEN_FIELD_NUMBER;
                hash = (53 * hash) + getToken().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.UserDataRequest parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserDataRequest parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserDataRequest parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserDataRequest parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserDataRequest parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserDataRequest parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserDataRequest parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.UserDataRequest parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.UserDataRequest parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.UserDataRequest parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.UserDataRequest parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.UserDataRequest parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.UserDataRequest prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.UserDataRequest}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.UserDataRequest)
                    Login.UserDataRequestOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_UserDataRequest_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_UserDataRequest_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.UserDataRequest.class, Login.UserDataRequest.Builder.class);
                }

                // Construct using toutiao.model.Login.UserDataRequest.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    token_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_UserDataRequest_descriptor;
                }

                @java.lang.Override
                public Login.UserDataRequest getDefaultInstanceForType() {
                    return Login.UserDataRequest.getDefaultInstance();
                }

                @java.lang.Override
                public Login.UserDataRequest build() {
                    Login.UserDataRequest result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.UserDataRequest buildPartial() {
                    Login.UserDataRequest result = new Login.UserDataRequest(this);
                    result.token_ = token_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.UserDataRequest) {
                        return mergeFrom((Login.UserDataRequest)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.UserDataRequest other) {
                    if (other == Login.UserDataRequest.getDefaultInstance()) return this;
                    if (!other.getToken().isEmpty()) {
                        token_ = other.token_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.UserDataRequest parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.UserDataRequest) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private java.lang.Object token_ = "";
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @return The token.
                 */
                public java.lang.String getToken() {
                    java.lang.Object ref = token_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        token_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @return The bytes for token.
                 */
                public com.google.protobuf.ByteString
                getTokenBytes() {
                    java.lang.Object ref = token_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        token_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @param value The token to set.
                 * @return This builder for chaining.
                 */
                public Builder setToken(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    token_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearToken() {

                    token_ = getDefaultInstance().getToken();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @param value The bytes for token to set.
                 * @return This builder for chaining.
                 */
                public Builder setTokenBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    token_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.UserDataRequest)
            }

            // @@protoc_insertion_point(class_scope:service.UserDataRequest)
            private static final Login.UserDataRequest DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.UserDataRequest();
            }

            public static Login.UserDataRequest getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<UserDataRequest>
                    PARSER = new com.google.protobuf.AbstractParser<UserDataRequest>() {
                @java.lang.Override
                public UserDataRequest parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new UserDataRequest(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<UserDataRequest> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<UserDataRequest> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.UserDataRequest getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface UserDataResponseOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.UserDataResponse)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 接口返回
             * </pre>
             *
             * <code>int32 errCode = 1;</code>
             * @return The errCode.
             */
            int getErrCode();

            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The errMsg.
             */
            java.lang.String getErrMsg();
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The bytes for errMsg.
             */
            com.google.protobuf.ByteString
            getErrMsgBytes();

            /**
             * <pre>
             * 用户数据
             * </pre>
             *
             * <code>.service.UserData userData = 3;</code>
             * @return Whether the userData field is set.
             */
            boolean hasUserData();
            /**
             * <pre>
             * 用户数据
             * </pre>
             *
             * <code>.service.UserData userData = 3;</code>
             * @return The userData.
             */
            Login.UserData getUserData();
            /**
             * <pre>
             * 用户数据
             * </pre>
             *
             * <code>.service.UserData userData = 3;</code>
             */
            Login.UserDataOrBuilder getUserDataOrBuilder();
        }
        /**
         * Protobuf type {@code service.UserDataResponse}
         */
        public static final class UserDataResponse extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.UserDataResponse)
                UserDataResponseOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use UserDataResponse.newBuilder() to construct.
            private UserDataResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private UserDataResponse() {
                errMsg_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new UserDataResponse();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private UserDataResponse(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 8: {

                                errCode_ = input.readInt32();
                                break;
                            }
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();

                                errMsg_ = s;
                                break;
                            }
                            case 26: {
                                Login.UserData.Builder subBuilder = null;
                                if (userData_ != null) {
                                    subBuilder = userData_.toBuilder();
                                }
                                userData_ = input.readMessage(Login.UserData.parser(), extensionRegistry);
                                if (subBuilder != null) {
                                    subBuilder.mergeFrom(userData_);
                                    userData_ = subBuilder.buildPartial();
                                }

                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_UserDataResponse_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_UserDataResponse_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.UserDataResponse.class, Login.UserDataResponse.Builder.class);
            }

            public static final int ERRCODE_FIELD_NUMBER = 1;
            private int errCode_;
            /**
             * <pre>
             * 接口返回
             * </pre>
             *
             * <code>int32 errCode = 1;</code>
             * @return The errCode.
             */
            @java.lang.Override
            public int getErrCode() {
                return errCode_;
            }

            public static final int ERRMSG_FIELD_NUMBER = 2;
            private volatile java.lang.Object errMsg_;
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The errMsg.
             */
            @java.lang.Override
            public java.lang.String getErrMsg() {
                java.lang.Object ref = errMsg_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    errMsg_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The bytes for errMsg.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getErrMsgBytes() {
                java.lang.Object ref = errMsg_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    errMsg_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            public static final int USERDATA_FIELD_NUMBER = 3;
            private Login.UserData userData_;
            /**
             * <pre>
             * 用户数据
             * </pre>
             *
             * <code>.service.UserData userData = 3;</code>
             * @return Whether the userData field is set.
             */
            @java.lang.Override
            public boolean hasUserData() {
                return userData_ != null;
            }
            /**
             * <pre>
             * 用户数据
             * </pre>
             *
             * <code>.service.UserData userData = 3;</code>
             * @return The userData.
             */
            @java.lang.Override
            public Login.UserData getUserData() {
                return userData_ == null ? Login.UserData.getDefaultInstance() : userData_;
            }
            /**
             * <pre>
             * 用户数据
             * </pre>
             *
             * <code>.service.UserData userData = 3;</code>
             */
            @java.lang.Override
            public Login.UserDataOrBuilder getUserDataOrBuilder() {
                return getUserData();
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (errCode_ != 0) {
                    output.writeInt32(1, errCode_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errMsg_);
                }
                if (userData_ != null) {
                    output.writeMessage(3, getUserData());
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (errCode_ != 0) {
                    size += com.google.protobuf.CodedOutputStream
                            .computeInt32Size(1, errCode_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errMsg_);
                }
                if (userData_ != null) {
                    size += com.google.protobuf.CodedOutputStream
                            .computeMessageSize(3, getUserData());
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.UserDataResponse)) {
                    return super.equals(obj);
                }
                Login.UserDataResponse other = (Login.UserDataResponse) obj;

                if (getErrCode()
                        != other.getErrCode()) return false;
                if (!getErrMsg()
                        .equals(other.getErrMsg())) return false;
                if (hasUserData() != other.hasUserData()) return false;
                if (hasUserData()) {
                    if (!getUserData()
                            .equals(other.getUserData())) return false;
                }
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + ERRCODE_FIELD_NUMBER;
                hash = (53 * hash) + getErrCode();
                hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
                hash = (53 * hash) + getErrMsg().hashCode();
                if (hasUserData()) {
                    hash = (37 * hash) + USERDATA_FIELD_NUMBER;
                    hash = (53 * hash) + getUserData().hashCode();
                }
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.UserDataResponse parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserDataResponse parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserDataResponse parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserDataResponse parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserDataResponse parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.UserDataResponse parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.UserDataResponse parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.UserDataResponse parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.UserDataResponse parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.UserDataResponse parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.UserDataResponse parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.UserDataResponse parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.UserDataResponse prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.UserDataResponse}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.UserDataResponse)
                    Login.UserDataResponseOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_UserDataResponse_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_UserDataResponse_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.UserDataResponse.class, Login.UserDataResponse.Builder.class);
                }

                // Construct using toutiao.model.Login.UserDataResponse.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    errCode_ = 0;

                    errMsg_ = "";

                    if (userDataBuilder_ == null) {
                        userData_ = null;
                    } else {
                        userData_ = null;
                        userDataBuilder_ = null;
                    }
                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_UserDataResponse_descriptor;
                }

                @java.lang.Override
                public Login.UserDataResponse getDefaultInstanceForType() {
                    return Login.UserDataResponse.getDefaultInstance();
                }

                @java.lang.Override
                public Login.UserDataResponse build() {
                    Login.UserDataResponse result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.UserDataResponse buildPartial() {
                    Login.UserDataResponse result = new Login.UserDataResponse(this);
                    result.errCode_ = errCode_;
                    result.errMsg_ = errMsg_;
                    if (userDataBuilder_ == null) {
                        result.userData_ = userData_;
                    } else {
                        result.userData_ = userDataBuilder_.build();
                    }
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.UserDataResponse) {
                        return mergeFrom((Login.UserDataResponse)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.UserDataResponse other) {
                    if (other == Login.UserDataResponse.getDefaultInstance()) return this;
                    if (other.getErrCode() != 0) {
                        setErrCode(other.getErrCode());
                    }
                    if (!other.getErrMsg().isEmpty()) {
                        errMsg_ = other.errMsg_;
                        onChanged();
                    }
                    if (other.hasUserData()) {
                        mergeUserData(other.getUserData());
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.UserDataResponse parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.UserDataResponse) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private int errCode_ ;
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @return The errCode.
                 */
                @java.lang.Override
                public int getErrCode() {
                    return errCode_;
                }
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @param value The errCode to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrCode(int value) {

                    errCode_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearErrCode() {

                    errCode_ = 0;
                    onChanged();
                    return this;
                }

                private java.lang.Object errMsg_ = "";
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return The errMsg.
                 */
                public java.lang.String getErrMsg() {
                    java.lang.Object ref = errMsg_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        errMsg_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return The bytes for errMsg.
                 */
                public com.google.protobuf.ByteString
                getErrMsgBytes() {
                    java.lang.Object ref = errMsg_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        errMsg_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @param value The errMsg to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrMsg(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    errMsg_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearErrMsg() {

                    errMsg_ = getDefaultInstance().getErrMsg();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @param value The bytes for errMsg to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrMsgBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    errMsg_ = value;
                    onChanged();
                    return this;
                }

                private Login.UserData userData_;
                private com.google.protobuf.SingleFieldBuilderV3<
                        Login.UserData, Login.UserData.Builder, Login.UserDataOrBuilder> userDataBuilder_;
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 * @return Whether the userData field is set.
                 */
                public boolean hasUserData() {
                    return userDataBuilder_ != null || userData_ != null;
                }
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 * @return The userData.
                 */
                public Login.UserData getUserData() {
                    if (userDataBuilder_ == null) {
                        return userData_ == null ? Login.UserData.getDefaultInstance() : userData_;
                    } else {
                        return userDataBuilder_.getMessage();
                    }
                }
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 */
                public Builder setUserData(Login.UserData value) {
                    if (userDataBuilder_ == null) {
                        if (value == null) {
                            throw new NullPointerException();
                        }
                        userData_ = value;
                        onChanged();
                    } else {
                        userDataBuilder_.setMessage(value);
                    }

                    return this;
                }
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 */
                public Builder setUserData(
                        Login.UserData.Builder builderForValue) {
                    if (userDataBuilder_ == null) {
                        userData_ = builderForValue.build();
                        onChanged();
                    } else {
                        userDataBuilder_.setMessage(builderForValue.build());
                    }

                    return this;
                }
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 */
                public Builder mergeUserData(Login.UserData value) {
                    if (userDataBuilder_ == null) {
                        if (userData_ != null) {
                            userData_ =
                                    Login.UserData.newBuilder(userData_).mergeFrom(value).buildPartial();
                        } else {
                            userData_ = value;
                        }
                        onChanged();
                    } else {
                        userDataBuilder_.mergeFrom(value);
                    }

                    return this;
                }
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 */
                public Builder clearUserData() {
                    if (userDataBuilder_ == null) {
                        userData_ = null;
                        onChanged();
                    } else {
                        userData_ = null;
                        userDataBuilder_ = null;
                    }

                    return this;
                }
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 */
                public Login.UserData.Builder getUserDataBuilder() {

                    onChanged();
                    return getUserDataFieldBuilder().getBuilder();
                }
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 */
                public Login.UserDataOrBuilder getUserDataOrBuilder() {
                    if (userDataBuilder_ != null) {
                        return userDataBuilder_.getMessageOrBuilder();
                    } else {
                        return userData_ == null ?
                                Login.UserData.getDefaultInstance() : userData_;
                    }
                }
                /**
                 * <pre>
                 * 用户数据
                 * </pre>
                 *
                 * <code>.service.UserData userData = 3;</code>
                 */
                private com.google.protobuf.SingleFieldBuilderV3<
                        Login.UserData, Login.UserData.Builder, Login.UserDataOrBuilder>
                getUserDataFieldBuilder() {
                    if (userDataBuilder_ == null) {
                        userDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                                Login.UserData, Login.UserData.Builder, Login.UserDataOrBuilder>(
                                getUserData(),
                                getParentForChildren(),
                                isClean());
                        userData_ = null;
                    }
                    return userDataBuilder_;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.UserDataResponse)
            }

            // @@protoc_insertion_point(class_scope:service.UserDataResponse)
            private static final Login.UserDataResponse DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.UserDataResponse();
            }

            public static Login.UserDataResponse getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<UserDataResponse>
                    PARSER = new com.google.protobuf.AbstractParser<UserDataResponse>() {
                @java.lang.Override
                public UserDataResponse parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new UserDataResponse(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<UserDataResponse> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<UserDataResponse> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.UserDataResponse getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface LogoutRequestOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.LogoutRequest)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 用户账户id，三方不传时，仅使用code
             * </pre>
             *
             * <code>string token = 1;</code>
             * @return The token.
             */
            java.lang.String getToken();
            /**
             * <pre>
             * 用户账户id，三方不传时，仅使用code
             * </pre>
             *
             * <code>string token = 1;</code>
             * @return The bytes for token.
             */
            com.google.protobuf.ByteString
            getTokenBytes();
        }
        /**
         * Protobuf type {@code service.LogoutRequest}
         */
        public static final class LogoutRequest extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.LogoutRequest)
                LogoutRequestOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use LogoutRequest.newBuilder() to construct.
            private LogoutRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private LogoutRequest() {
                token_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new LogoutRequest();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private LogoutRequest(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();

                                token_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_LogoutRequest_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_LogoutRequest_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.LogoutRequest.class, Login.LogoutRequest.Builder.class);
            }

            public static final int TOKEN_FIELD_NUMBER = 1;
            private volatile java.lang.Object token_;
            /**
             * <pre>
             * 用户账户id，三方不传时，仅使用code
             * </pre>
             *
             * <code>string token = 1;</code>
             * @return The token.
             */
            @java.lang.Override
            public java.lang.String getToken() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    token_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 用户账户id，三方不传时，仅使用code
             * </pre>
             *
             * <code>string token = 1;</code>
             * @return The bytes for token.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getTokenBytes() {
                java.lang.Object ref = token_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    token_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 1, token_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, token_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.LogoutRequest)) {
                    return super.equals(obj);
                }
                Login.LogoutRequest other = (Login.LogoutRequest) obj;

                if (!getToken()
                        .equals(other.getToken())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + TOKEN_FIELD_NUMBER;
                hash = (53 * hash) + getToken().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.LogoutRequest parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LogoutRequest parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LogoutRequest parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LogoutRequest parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LogoutRequest parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LogoutRequest parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LogoutRequest parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.LogoutRequest parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.LogoutRequest parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.LogoutRequest parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.LogoutRequest parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.LogoutRequest parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.LogoutRequest prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.LogoutRequest}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.LogoutRequest)
                    Login.LogoutRequestOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_LogoutRequest_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_LogoutRequest_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.LogoutRequest.class, Login.LogoutRequest.Builder.class);
                }

                // Construct using toutiao.model.Login.LogoutRequest.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    token_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_LogoutRequest_descriptor;
                }

                @java.lang.Override
                public Login.LogoutRequest getDefaultInstanceForType() {
                    return Login.LogoutRequest.getDefaultInstance();
                }

                @java.lang.Override
                public Login.LogoutRequest build() {
                    Login.LogoutRequest result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.LogoutRequest buildPartial() {
                    Login.LogoutRequest result = new Login.LogoutRequest(this);
                    result.token_ = token_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.LogoutRequest) {
                        return mergeFrom((Login.LogoutRequest)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.LogoutRequest other) {
                    if (other == Login.LogoutRequest.getDefaultInstance()) return this;
                    if (!other.getToken().isEmpty()) {
                        token_ = other.token_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.LogoutRequest parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.LogoutRequest) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private java.lang.Object token_ = "";
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @return The token.
                 */
                public java.lang.String getToken() {
                    java.lang.Object ref = token_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        token_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @return The bytes for token.
                 */
                public com.google.protobuf.ByteString
                getTokenBytes() {
                    java.lang.Object ref = token_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        token_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @param value The token to set.
                 * @return This builder for chaining.
                 */
                public Builder setToken(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    token_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearToken() {

                    token_ = getDefaultInstance().getToken();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 用户账户id，三方不传时，仅使用code
                 * </pre>
                 *
                 * <code>string token = 1;</code>
                 * @param value The bytes for token to set.
                 * @return This builder for chaining.
                 */
                public Builder setTokenBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    token_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.LogoutRequest)
            }

            // @@protoc_insertion_point(class_scope:service.LogoutRequest)
            private static final Login.LogoutRequest DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.LogoutRequest();
            }

            public static Login.LogoutRequest getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<LogoutRequest>
                    PARSER = new com.google.protobuf.AbstractParser<LogoutRequest>() {
                @java.lang.Override
                public LogoutRequest parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new LogoutRequest(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<LogoutRequest> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<LogoutRequest> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.LogoutRequest getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public interface LogoutResponseOrBuilder extends
                // @@protoc_insertion_point(interface_extends:service.LogoutResponse)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <pre>
             * 接口返回
             * </pre>
             *
             * <code>int32 errCode = 1;</code>
             * @return The errCode.
             */
            int getErrCode();

            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The errMsg.
             */
            java.lang.String getErrMsg();
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The bytes for errMsg.
             */
            com.google.protobuf.ByteString
            getErrMsgBytes();
        }
        /**
         * Protobuf type {@code service.LogoutResponse}
         */
        public static final class LogoutResponse extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:service.LogoutResponse)
                LogoutResponseOrBuilder {
            private static final long serialVersionUID = 0L;
            // Use LogoutResponse.newBuilder() to construct.
            private LogoutResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }
            private LogoutResponse() {
                errMsg_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({"unused"})
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new LogoutResponse();
            }

            @java.lang.Override
            public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
                return this.unknownFields;
            }
            private LogoutResponse(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                this();
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                        com.google.protobuf.UnknownFieldSet.newBuilder();
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 8: {

                                errCode_ = input.readInt32();
                                break;
                            }
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();

                                errMsg_ = s;
                                break;
                            }
                            default: {
                                if (!parseUnknownField(
                                        input, unknownFields, extensionRegistry, tag)) {
                                    done = true;
                                }
                                break;
                            }
                        }
                    }
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(this);
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(
                            e).setUnfinishedMessage(this);
                } finally {
                    this.unknownFields = unknownFields.build();
                    makeExtensionsImmutable();
                }
            }
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return Login.internal_static_service_LogoutResponse_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
                return Login.internal_static_service_LogoutResponse_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                Login.LogoutResponse.class, Login.LogoutResponse.Builder.class);
            }

            public static final int ERRCODE_FIELD_NUMBER = 1;
            private int errCode_;
            /**
             * <pre>
             * 接口返回
             * </pre>
             *
             * <code>int32 errCode = 1;</code>
             * @return The errCode.
             */
            @java.lang.Override
            public int getErrCode() {
                return errCode_;
            }

            public static final int ERRMSG_FIELD_NUMBER = 2;
            private volatile java.lang.Object errMsg_;
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The errMsg.
             */
            @java.lang.Override
            public java.lang.String getErrMsg() {
                java.lang.Object ref = errMsg_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    errMsg_ = s;
                    return s;
                }
            }
            /**
             * <pre>
             * 接口信息
             * </pre>
             *
             * <code>string errMsg = 2;</code>
             * @return The bytes for errMsg.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
            getErrMsgBytes() {
                java.lang.Object ref = errMsg_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    errMsg_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            private byte memoizedIsInitialized = -1;
            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1) return true;
                if (isInitialized == 0) return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (errCode_ != 0) {
                    output.writeInt32(1, errCode_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errMsg_);
                }
                unknownFields.writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1) return size;

                size = 0;
                if (errCode_ != 0) {
                    size += com.google.protobuf.CodedOutputStream
                            .computeInt32Size(1, errCode_);
                }
                if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(errMsg_)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errMsg_);
                }
                size += unknownFields.getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof Login.LogoutResponse)) {
                    return super.equals(obj);
                }
                Login.LogoutResponse other = (Login.LogoutResponse) obj;

                if (getErrCode()
                        != other.getErrCode()) return false;
                if (!getErrMsg()
                        .equals(other.getErrMsg())) return false;
                if (!unknownFields.equals(other.unknownFields)) return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                hash = (37 * hash) + ERRCODE_FIELD_NUMBER;
                hash = (53 * hash) + getErrCode();
                hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
                hash = (53 * hash) + getErrMsg().hashCode();
                hash = (29 * hash) + unknownFields.hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static Login.LogoutResponse parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LogoutResponse parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LogoutResponse parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LogoutResponse parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LogoutResponse parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }
            public static Login.LogoutResponse parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }
            public static Login.LogoutResponse parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.LogoutResponse parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.LogoutResponse parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }
            public static Login.LogoutResponse parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }
            public static Login.LogoutResponse parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }
            public static Login.LogoutResponse parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() { return newBuilder(); }
            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }
            public static Builder newBuilder(Login.LogoutResponse prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }
            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder() : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }
            /**
             * Protobuf type {@code service.LogoutResponse}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:service.LogoutResponse)
                    Login.LogoutResponseOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
                    return Login.internal_static_service_LogoutResponse_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
                    return Login.internal_static_service_LogoutResponse_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    Login.LogoutResponse.class, Login.LogoutResponse.Builder.class);
                }

                // Construct using toutiao.model.Login.LogoutResponse.newBuilder()
                private Builder() {
                    maybeForceBuilderInitialization();
                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);
                    maybeForceBuilderInitialization();
                }
                private void maybeForceBuilderInitialization() {
                    if (com.google.protobuf.GeneratedMessageV3
                            .alwaysUseFieldBuilders) {
                    }
                }
                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    errCode_ = 0;

                    errMsg_ = "";

                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
                    return Login.internal_static_service_LogoutResponse_descriptor;
                }

                @java.lang.Override
                public Login.LogoutResponse getDefaultInstanceForType() {
                    return Login.LogoutResponse.getDefaultInstance();
                }

                @java.lang.Override
                public Login.LogoutResponse build() {
                    Login.LogoutResponse result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public Login.LogoutResponse buildPartial() {
                    Login.LogoutResponse result = new Login.LogoutResponse(this);
                    result.errCode_ = errCode_;
                    result.errMsg_ = errMsg_;
                    onBuilt();
                    return result;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }
                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }
                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }
                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }
                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }
                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }
                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof Login.LogoutResponse) {
                        return mergeFrom((Login.LogoutResponse)other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(Login.LogoutResponse other) {
                    if (other == Login.LogoutResponse.getDefaultInstance()) return this;
                    if (other.getErrCode() != 0) {
                        setErrCode(other.getErrCode());
                    }
                    if (!other.getErrMsg().isEmpty()) {
                        errMsg_ = other.errMsg_;
                        onChanged();
                    }
                    this.mergeUnknownFields(other.unknownFields);
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    Login.LogoutResponse parsedMessage = null;
                    try {
                        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        parsedMessage = (Login.LogoutResponse) e.getUnfinishedMessage();
                        throw e.unwrapIOException();
                    } finally {
                        if (parsedMessage != null) {
                            mergeFrom(parsedMessage);
                        }
                    }
                    return this;
                }

                private int errCode_ ;
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @return The errCode.
                 */
                @java.lang.Override
                public int getErrCode() {
                    return errCode_;
                }
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @param value The errCode to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrCode(int value) {

                    errCode_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口返回
                 * </pre>
                 *
                 * <code>int32 errCode = 1;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearErrCode() {

                    errCode_ = 0;
                    onChanged();
                    return this;
                }

                private java.lang.Object errMsg_ = "";
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return The errMsg.
                 */
                public java.lang.String getErrMsg() {
                    java.lang.Object ref = errMsg_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        errMsg_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return The bytes for errMsg.
                 */
                public com.google.protobuf.ByteString
                getErrMsgBytes() {
                    java.lang.Object ref = errMsg_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        errMsg_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @param value The errMsg to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrMsg(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }

                    errMsg_ = value;
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @return This builder for chaining.
                 */
                public Builder clearErrMsg() {

                    errMsg_ = getDefaultInstance().getErrMsg();
                    onChanged();
                    return this;
                }
                /**
                 * <pre>
                 * 接口信息
                 * </pre>
                 *
                 * <code>string errMsg = 2;</code>
                 * @param value The bytes for errMsg to set.
                 * @return This builder for chaining.
                 */
                public Builder setErrMsgBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);

                    errMsg_ = value;
                    onChanged();
                    return this;
                }
                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }


                // @@protoc_insertion_point(builder_scope:service.LogoutResponse)
            }

            // @@protoc_insertion_point(class_scope:service.LogoutResponse)
            private static final Login.LogoutResponse DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new Login.LogoutResponse();
            }

            public static Login.LogoutResponse getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<LogoutResponse>
                    PARSER = new com.google.protobuf.AbstractParser<LogoutResponse>() {
                @java.lang.Override
                public LogoutResponse parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    return new LogoutResponse(input, extensionRegistry);
                }
            };

            public static com.google.protobuf.Parser<LogoutResponse> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<LogoutResponse> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public Login.LogoutResponse getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_EncryptedData_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_EncryptedData_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_ShowDataRequest_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_ShowDataRequest_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_ShowDataResponse_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_ShowDataResponse_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_LoginRequest_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_LoginRequest_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_LoginResponse_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_LoginResponse_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_UserData_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_UserData_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_UserDataRequest_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_UserDataRequest_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_UserDataResponse_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_UserDataResponse_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_LogoutRequest_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_LogoutRequest_fieldAccessorTable;
        private static final com.google.protobuf.Descriptors.Descriptor
                internal_static_service_LogoutResponse_descriptor;
        private static final
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internal_static_service_LogoutResponse_fieldAccessorTable;

        public static com.google.protobuf.Descriptors.FileDescriptor
        getDescriptor() {
            return descriptor;
        }
        private static  com.google.protobuf.Descriptors.FileDescriptor
                descriptor;
        static {
            java.lang.String[] descriptorData = {
                    "\n\013login.proto\022\007service\")\n\rEncryptedData\022" +
                            "\014\n\004data\030\001 \001(\t\022\n\n\002iv\030\002 \001(\t\"O\n\017ShowDataReq" +
                            "uest\022-\n\rencryptedData\030\001 \001(\0132\026.service.En" +
                            "cryptedData\022\r\n\005token\030\002 \001(\t\"Y\n\020ShowDataRe" +
                            "sponse\022\017\n\007errCode\030\001 \001(\005\022\016\n\006errMsg\030\002 \001(\t\022" +
                            "\025\n\rdecryptedData\030\003 \001(\t\022\r\n\005token\030\004 \001(\t\"\034\n" +
                            "\014LoginRequest\022\014\n\004code\030\001 \001(\t\"`\n\rLoginResp" +
                            "onse\022\017\n\007errCode\030\001 \001(\005\022\016\n\006errMsg\030\002 \001(\t\022\r\n" +
                            "\005token\030\003 \001(\t\022\016\n\006openid\030\004 \001(\t\022\017\n\007unionid\030" +
                            "\005 \001(\t\"\030\n\010UserData\022\014\n\004data\030\001 \001(\t\" \n\017UserD" +
                            "ataRequest\022\r\n\005token\030\001 \001(\t\"X\n\020UserDataRes" +
                            "ponse\022\017\n\007errCode\030\001 \001(\005\022\016\n\006errMsg\030\002 \001(\t\022#" +
                            "\n\010userData\030\003 \001(\0132\021.service.UserData\"\036\n\rL" +
                            "ogoutRequest\022\r\n\005token\030\001 \001(\t\"1\n\016LogoutRes" +
                            "ponse\022\017\n\007errCode\030\001 \001(\005\022\016\n\006errMsg\030\002 \001(\tB." +
                            "\n\rtoutiao.modelZ\007./model\312\002\005Model\342\002\013GPBMe" +
                            "taDatab\006proto3"
            };
            descriptor = com.google.protobuf.Descriptors.FileDescriptor
                    .internalBuildGeneratedFileFrom(descriptorData,
                            new com.google.protobuf.Descriptors.FileDescriptor[] {
                            });
            internal_static_service_EncryptedData_descriptor =
                    getDescriptor().getMessageTypes().get(0);
            internal_static_service_EncryptedData_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_EncryptedData_descriptor,
                    new java.lang.String[] { "Data", "Iv", });
            internal_static_service_ShowDataRequest_descriptor =
                    getDescriptor().getMessageTypes().get(1);
            internal_static_service_ShowDataRequest_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_ShowDataRequest_descriptor,
                    new java.lang.String[] { "EncryptedData", "Token", });
            internal_static_service_ShowDataResponse_descriptor =
                    getDescriptor().getMessageTypes().get(2);
            internal_static_service_ShowDataResponse_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_ShowDataResponse_descriptor,
                    new java.lang.String[] { "ErrCode", "ErrMsg", "DecryptedData", "Token", });
            internal_static_service_LoginRequest_descriptor =
                    getDescriptor().getMessageTypes().get(3);
            internal_static_service_LoginRequest_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_LoginRequest_descriptor,
                    new java.lang.String[] { "Code", });
            internal_static_service_LoginResponse_descriptor =
                    getDescriptor().getMessageTypes().get(4);
            internal_static_service_LoginResponse_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_LoginResponse_descriptor,
                    new java.lang.String[] { "ErrCode", "ErrMsg", "Token", "Openid", "Unionid", });
            internal_static_service_UserData_descriptor =
                    getDescriptor().getMessageTypes().get(5);
            internal_static_service_UserData_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_UserData_descriptor,
                    new java.lang.String[] { "Data", });
            internal_static_service_UserDataRequest_descriptor =
                    getDescriptor().getMessageTypes().get(6);
            internal_static_service_UserDataRequest_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_UserDataRequest_descriptor,
                    new java.lang.String[] { "Token", });
            internal_static_service_UserDataResponse_descriptor =
                    getDescriptor().getMessageTypes().get(7);
            internal_static_service_UserDataResponse_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_UserDataResponse_descriptor,
                    new java.lang.String[] { "ErrCode", "ErrMsg", "UserData", });
            internal_static_service_LogoutRequest_descriptor =
                    getDescriptor().getMessageTypes().get(8);
            internal_static_service_LogoutRequest_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_LogoutRequest_descriptor,
                    new java.lang.String[] { "Token", });
            internal_static_service_LogoutResponse_descriptor =
                    getDescriptor().getMessageTypes().get(9);
            internal_static_service_LogoutResponse_fieldAccessorTable = new
                    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                    internal_static_service_LogoutResponse_descriptor,
                    new java.lang.String[] { "ErrCode", "ErrMsg", });
        }

        // @@protoc_insertion_point(outer_class_scope)
}


